The evolution of computers and networking technologies from high-cost, low performance data processing systems to low cost, high-performance communication, problem solving, and entertainment systems has provided a cost-effective and time saving means to lessen the burden of performing every day tasks such as correspondence, bill paying, shopping, budgeting information and gathering, etc. For example, a computing system interfaced to the Internet, by way of wire or wireless technology, can provide a user with a channel for nearly instantaneous access to a wealth of information from a repository of web sites and servers located around the world. Such a system, as well, allows a user to not only gather information, but also to provide information to disparate sources. As such, online data storing, management, and accessing has become increasingly popular.
Consumer data can be stored in a variety of formats offering access to a plurality of entities. Extensible markup language (XML) and other data storage, access, and management technologies have emerged to provide a hierarchical structure to data; the hierarchical structure provides an intuitive format to the data to facilitate programmatic access thereto. Both hierarchical and relational storage have benefits and drawbacks. One drawback of XML is that XML data is typically stored in memory to facilitate programmatic access, which can become burdensome if the XML file is too large to fit in memory and/or is streamed in from an external data source. Relational data, however, can be stored persistently and queried when desired without utilizing a significant portion of volatile storage.
However, XML queries can be more efficient due to the storage in volatile memory and XML can be friendlier in regard to providing programmatic access, but, as XML files become large, processing and storing them in volatile memory can have a negative effect on system resources. XML is desirable as a method for storing, accessing, and communicating data; thus allowing data in XML format, or other nested hierarchical format, to be seamlessly and efficiently stored in a persistent storage, such as relational storage, while maintaining its hierarchical structure can satisfy the current deficiencies of the language. Current systems aim to store XML code in the database itself, but this requires extra steps of indexing the data as it comes in and allowing queries on the index, which may or may not produce desired results. This can also damage the hierarchical order of the XML depending on how the document or stream is broken up and stored. One issue that has been heretofore unsolved is how to process a nested stream, such as XML, into a differently shaped stream, such as a relational database stream, while staying true to the hierarchy and order.